package com.syedu.day04.homework;

import com.syedu.util.InputUtil;

/**
 * description：Java简易计算器
 * @author Administrator
 * @date 2022/3/10 9:03
 */
public class Calc {
    public static void main(String[] args) {
        //循环
        for (; ; ) {
            //打印主菜单
            showMenu();
            //工具类获取用户键盘输入
            int choice = InputUtil.getInt("请您选择功能:");
            //定义变量保存输入值
            double d1, d2;
            //判断用户输入
            if (choice == 1) {
                //加法
                d1 = InputUtil.getDouble("请您输入被加数:");
                d2 = InputUtil.getDouble("请您输入加数:");
                System.out.println(d1 + " + " + d2 + " = " + add(d1, d2));
            } else if (choice == 2) {
                //减法
                d1 = InputUtil.getDouble("请您输入被减数:");
                d2 = InputUtil.getDouble("请您输入减数:");
                System.out.println(d1 + " - " + d2 + " = " + sub(d1, d2));
            } else if (choice == 3) {
                //乘法
                d1 = InputUtil.getDouble("请您输入被乘数:");
                d2 = InputUtil.getDouble("请您输入乘数:");
                System.out.println(d1 + " * " + d2 + " = " + mul(d1, d2));
            } else if (choice == 4) {
                //除余
                //打印子菜单
                for (; ; ) {
                    showSubMenu();
                    choice = InputUtil.getInt("请您选择:");
                    if (choice == 1) {
                        //除法
                        d1 = InputUtil.getDouble("请您输入被除数:");
                        d2 = InputUtil.getDouble("请您输入除数:");
                        //判断除数不能为0
                        if(d2 == 0){
                            System.out.println("除数不能为0!");
                            //跳过本轮循环,继续执行下一次
                            continue;
                        }
                        System.out.println(d1 + " / " + d2 + " = " + div(d1, d2));
                    } else if (choice == 2) {
                        //取余
                        d1 = InputUtil.getDouble("请您输入被余数:");
                        d2 = InputUtil.getDouble("请您输入余数:");
                        System.out.println(d1 + " % " + d2 + " = " + mod(d1, d2));
                    } else if (choice == 3) {
                        //返回上一层
                        break;
                    } else {
                        System.out.println("对不起,您的输入有误,请重新输入...");
                    }
                }
            } else if (choice == 5) {
                //退出
                System.out.println("谢谢使用~");
                //打断循环
                break;
            } else {
                System.out.println("对不起,您的输入有误,请重新输入...");
            }
        }
    }

    /**打印主菜单功能*/
    public static void showMenu() {
        System.out.println("---Java简易计算器---\n" +
                "1.加法\n" +
                "2.减法\n" +
                "3.乘法\n" +
                "4.除余\n" +
                "5.退出\n" +
                "------------------");
    }

    /**打印子菜单*/
    public static void showSubMenu() {
        System.out.println("============\n" +
                "1.除法\n" +
                "2.取余\n" +
                "3.返回上一层\n" +
                "============");
    }

    /**加法*/
    public static double add(double d1, double d2) {
        return d1 + d2;
    }

    /**减法*/
    public static double sub(double d1, double d2) {
        return d1 - d2;
    }

    /**乘法*/
    public static double mul(double d1, double d2) {
        return d1 * d2;
    }

    /**除法*/
    public static double div(double d1, double d2) {
        return d1 / d2;
    }

    /**取余*/
    public static double mod(double d1, double d2) {
        return d1 % d2;
    }
}